# # 111111111111111
# # list1 = ["姓名","小天才","年龄",18]
# # dict1 = {}
# # for i in range(0,len(list1),2):
# #     dict1[list1[i]] = list1[i+1]
# # print(dict1)
# # 22222222222222222222222
# # dict1 = {}
# # with open("./student.txt","r",encoding='utf-8') as f:
# #     for i in f:
# #         i = i.strip()
# #         key , value = i.split(":")
# #         dict1[key] = value
# # print(dict1)
# # 3333333333333333333333333333
# dict1 = {'zhangshan': '30', 'lisi': '50', 'wangwu': '60', 'lifei': '70'}
# for i in
#     dict1[i.split(",")]
#     print(dict1[i])
# dict1 = {}
# # with open("./student.txt","r",encoding="utf-8")as f:
# #     # print(f.read())
# #     for i in f.readlines():
# #         dict1[i.split(":")[0].strip()] = i.split(":")[1].strip()
# # print(dict1)
# 1、写函数,将传入的列表或元祖对象的奇数位索引对应的元素,
# def funa(x):
#     for i in range(len(x)):
#         if i % 2 != 0:
#             print(x[i])
# list1 = [1,2,3]
# list2 = funa(list1)
# #
# 2、写函数,判断用户传入的对象(string,list,tuple)长度是否大于5
# def funa(x):
#     if len(x) > 5:
#         print(len(x))
#     else:
#         print("不大于5")
#
# list1 = [1,2,3]
# list2 = funa(list1)
#
# 3、写函数,计算传入的string中,数字,字母,空格以及其它内容的个数,并返回结果

# def funa(x):
#     count1 = 0
#     count2 = 0
#     count3 = 0
#     count4 = 0
#     for i in x:
#         if i in "0123456789":
#             count1 += 1
#         elif (i >= "a" and i <= "z") or (i >= "A" and i <="Z"):
#             count2 += 1
#         elif i == " ":
#             count3 += 1
#         else:
#             count4 += 1
#     print(f"数字{count1}个")
#     print(f"字母{count2}个")
#     print(f"空格{count3}个")
#     print(f"其他{count4}个")
# str1 = "123asd -"
# x = funa(str1)
# #
# 4、写函数,接收两个数字参数,返回较大的那个数字
# def funa(x,y):
#     if x > y:
#         return x
#     else:
#         return y
# max1 = funa(6,9)
# print(max1)

# 5、编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.
# 元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数.
# def cacluate(*x):
#     sum1 = 0
#     avg1 = 0
#     num1 = 0
#     for i in range(len(x)):
#         sum1 += x[i]
#     avg1= sum1 / len(x)
#     for i in range(len(x)):
#         if x[i] > avg1:
#             num1 = x[i]
#     print(x)
#     return avg1,num1
# xx = cacluate(1,1,1,1,6)
# print(xx)
# 6、编写一个函数, 接收字符串参数, 返回一个元组,
# 元组的第一个值为大写字母的个数, 第二个值为小写字母个数.
# def cacluate(x):
#     count1 = 0
#     count2 = 0
#     list1 = []
#     for i in x:
#         if i >= "a" and i <= "z":
#             count1 += 1
#
#         elif i >= "A" and i <="Z":
#             count2 += 1
#     print(x)
#     return count1,count2
# str1 = "asdASD"
# xx = cacluate(str1)
# print(xx)
# 7、编写函数, 接收一个列表(包含30个1~100之间的随机整形数)
# 和一个整形数k, 返回一个新列表.
# 函数需求:
# 将列表下标k之前对应(不包含k)的元素逆序;
# 将下标k及之后的元素逆序;
#
# 8、编写函数，从键盘输入参数x和n，计算并显示形如x+xx +xxx + xxxx + xxxxx+xxx…xxx+ 的表达式前n项的值
# def cacluate(x,n):
#     str1 = ""
#     count2 = 0
#     for i in range(1,n+1):
#         str2 = str(x) * 1
#         count2 += int(str2)
#
#     print(str2)
#     return count2
# xx = cacluate(4,5)
# print(xx)
# 9、写函数,函数接收的4个参数分别是:姓名,性别(默认为男),年龄,地址
#
# 用户通过input输入这4个内容(支持持续输入,Q或q退出),并传递给函数
#
# 函数接收到这些内容,将其追加到student_msg文件中
#
# 重点:复习文件操作
#
# 10、写函数,接收n个数字,返回这些数字的和(动态传参)
# def cacluate(*n):
#     sum1=sum(n)
#     print(sum1)
#     return sum1
# xx = cacluate(4,5,6)
# print(xx)
# 11、在实参中传入多个可迭代对象(要有string,list,tuple,set,dict),将每个对象的每个元素都加到args或kwargs里
#
# 12、写函数,把传过来的列表中的每一个元素都用"_"拼接,并返回
# def cacluate(n):
#         n="_".join(map(str,n))
#         return n
# list1 = [1,2,3]
# xx = cacluate(list1)
# print(xx)
# #
# 13、写函数,传入一个数字,返回这个数的阶乘
# 重点:累乘
# def cacluate(n):
#     num1 = 1
#     for i in range(1,n+1):
#         num1 *= i
#     print(num1)
#     return num1
# xx = cacluate(5)
# print(xx)
#
#
# 示例：1x2x3....
#
# 14、写函数,返回一个扑克牌列表,里面有52项,每一项都是一个tuple
#
# 15、用代码写一个99乘法表
# for i in range(1,10):
#     for j in range(1,i+1):
#         print(f"{i}*{j}={i*j}\t",end=" ")
#     print()
# 16、编写函数，求1+2+3+…N的和
# def cacluate(n):
#          for i in range(n+1):
#             i+=i
#          return i
# xx = cacluate(5)
# print(xx)

# 17、编写一个函数，求多个数中的最大值
# def cacluate(x,y,z):
#         if x > y and x > z :
#             return x
#         elif z > y and z > x:
#             return z
#         else:
#             return y
# xx = cacluate(2,3,4)
# print(xx)
#
# 18、编写一个函数，提取指定字符串中所有的字母，然后拼接在一起产生一个新的字符串
# def cacluate(n):
#     str2 =""
#     for i in n:
#         if (i >= "a" and i <= "z") or (i >= "A" and i <= "Z"):
#             str2 += i
#     return str2
# str1 = "asdasd123"
# xx = cacluate(str1)
# print(xx)

# 19、 定义一个学生注册函数enroll()，打印学生姓名，性别，年龄，城市， 使用默认参数降低调用函数的复杂度
# def enroll():
#     str2 = {"学生姓名":"小天才","性别":"男","年龄":18,"城市":"沈阳"}
#     print(str2)
# xx = enroll()
# 20、编写一个函数，接受一个字符串作为参数，并返回其中所有单词的首字母的大写形式

# 21、写一个函数，求多个数的平均值
# def cacluate(n):
#     sum1 = 0
#     avg1 = 0
#     for i in n:
#         sum1 += i
#     avg1 = sum1 /len(n)
#
#     return avg1
# str1 = [1,1,1,1,6]
# xx = cacluate(str1)
# print(xx)
#
# 22、写一个自己的len函数，统计指定序列中元素的个数
# def cacluate(n):
#     count1 = 0
#     for i in n:
#         count1 += 1
#     return count1
# str1 = [1,1,1,1,6]
# xx = cacluate(str1)
# print(xx)

# 23、找出传入的列表或元组的奇数位对应的元素，并返回一个新的列表
# def funa(x):
#     list3 = []
#     for i in range(len(x)):
#         if i % 2 != 0:
#             list3.append(x[i])
#             print(x[i])
#     return list3
# list1 = [1,2,3,4]
# list2 = funa(list1)
# print(list2)
# #

# 24、编写一个函数，接受一个字符串列表作为参数，并返回一个字符串，其中包含所有字符串首字母的大写形式
#
# 25、定义函数，有一个形参，传入的是列表，数组大小不超过 100个，
# # 数组中的每个元素值不允许超过 100，但是可以等于100，
# # 如果列表大小超过了100个截取到第100个为止，要求返回的列表格式：
#
# # 删除所有重复元素，使得每个元素只出现一次
# # 按照数字的大小，由高到低排序返回
# def funa(x):
#     list3 = []
#     if len(x)< 100:
#         for i in range(len(x)):
#             if x.count(x[i]) == 1:
#                 list3.append(i)
#     print(list3)
#     return list3
# list1 = [2,2,3,4]
# list2 = funa(list1)
# print(list2)
#

# 26、定义函数 getLength，打印用户传入的容器类型和数据长度
# def getLength(x):
#     count1 = 0
#     for i in range(len(x)):
#             count1 += 1
#     print(type(x))
#     print(count1)
# list1 = [2,2,3,4]
# list2 = getLength(list1)
#
# 27、定义函数 generateNum( )
# # 返回从0~9的十个数字中随机取出4个不重复的数字组成一个字符串
#
# 28、定义函数 moreThan(num)，判断输入的数字是否大于1500
# def funa(x):
#     if x >1500:
#         print("大于1500")
#     else:
#         print("小于1500")
# list1 = 8
# list2 = funa(list1)

# 29、定义函数，有两个形参，第一个形参到第二个形参的范围，所有平方数之和
#
# 示例：func_a(5,10)
# 5x5+6x6+7x7+8x8+9x9+10x10...
#
# 30、写函数，检查传入字典的每一个value长度，如果大于2，
# # 那么仅保留前两个长度的内容， 并将新内容返回给调用者
#
# 31、写函数，判断用户传入的对象（字符串、列表、元组）的元素是否为空
#
# 32、编写自定义函数，完成一个简单的减法运算函数
#
# 33、编写自定义函数，可以输出自己的名字即可。
#
# 34、编写自定义函数：剪刀石头布
# 游戏开始，初始状态下用户和电脑都有 100 分，赢一局+10 分，输一局-10 分。
#
# 当用户为 0 分时，游戏结束，提示游戏结束，比赛输了
#
# 当用户为 200 分时，游戏结束，提示游戏结束，赢得比赛、每轮比赛都输出当前的分数
#
# 1 代表剪刀 2 代表石头 3 代表布
#
# 35、编写一个函数，接受一个字符串作为参数，并返回该字符串的逆序字符串
#
# 36、编写一个函数，接受一个数字列表作为参数，并返回其中所有偶数的列表
#
# 37、编写一个函数，接受一个字符串列表作为参数，并返回其中最长的字符串。
#
# 38、编写一个函数，接受一个数字列表作为参数，并返回其中所有数字的平方的总和
#
# 39、编写一个函数，接受一个整数作为参数，并返回其阶乘
#
# 40、编写一个函数，接受一个字符串作为参数，并返回其中所有单词的首字母的大写形式
#
